The present disclosure describes systems and techniques relating to storing data on multiple storage devices.
When storing large amounts of data on multiple storage devices, data placement and retrieval scheduling can be important for the overall efficiency and utility of the storage system. A continuous media (CM) server is an example of a storage system where data placement can be of particular importance. CM objects, such as video and audio files, can be quite large and have significant bandwidth requirements. Moreover, CM servers typically must handle large numbers of simultaneous users.
A common solution for CM servers involves breaking CM objects into fixed sized blocks which are distributed across all the disks in the system. Convention data placement techniques for CM servers, such as round-robin striping, RAID (Redundant Array of Inexpensive Disks) striping and various hybrid approaches, can be categorized as constrained placement approaches. In a constrained placement approach, the location of a data block is fixed and determined by the placement algorithm.
By contrast, a non-constrained placement approach involves maintaining a directory system to keep track of the location of the blocks, thus allowing the blocks to be placed in any location desired and moved as needed. For example, in random placement, a block's location is randomly assigned and then tracked using a directory system. Random placement can provide load balancing by the law of large numbers. Moreover, when performing data access, random placement can eliminate the need for synchronous access cycles, provide a single traffic pattern, and can support unpredictable access patterns, such as those generated by interactive applications or VCR-type operations on CM streams.